package com.platform.admin.service;


import com.platform.admin.pojo.entity.SysMenu;
import com.platform.admin.pojo.req.CommonReq;
import com.platform.admin.pojo.req.SaveMenuReq;
import com.platform.admin.pojo.vo.SysMenuSelectVO;
import com.platform.admin.pojo.vo.SysMenuVO;
import com.baomidou.mybatisplus.extension.service.IService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

import java.util.List;

@Api(tags = "系统菜单服务接口")
public interface ISysMenuService extends IService<SysMenu> {

    @ApiOperation(value = "加载数据表格菜单")
    List<SysMenuVO> loadMenus();

    @ApiOperation(value = "创建菜单")
    void createMenu(SaveMenuReq req);

    @ApiOperation(value = "菜单树")
    List<SysMenuVO> listTree();

    @ApiOperation(value = "更新菜单")
    void updateMenu(SaveMenuReq req);

    @ApiOperation(value = "批量删除")
    void deletes(List<Long> ids);

    @ApiOperation(value = "获取菜单select")
    List<SysMenuSelectVO> select(int status);

    @ApiOperation(value = "获取菜单详情")
    SysMenuVO getDetail(Long id);

    @ApiOperation(value = "查询角色绑定的菜单")
    List<Long> listRoleMenu(Long roleId);

    @ApiOperation(value = "更新角色绑定的菜单")
    void updateRoleMenu(Long roleId, CommonReq req);

    @ApiOperation(value = "更新菜单状态")
    void updateMenuStatus(Long id, int status);

    @ApiOperation(value = "当前用户信息集合")
    List<Long> currentUser();
}
